package br.unicamp.ic.inf312.arena.modelo.vendas;

import br.unicamp.ic.inf312.arena.modelo.logistico.Assento;
import br.unicamp.ic.inf312.arena.modelo.logistico.AssentoCategorizado;
import br.unicamp.ic.inf312.arena.modelo.logistico.Evento;
import br.unicamp.ic.inf312.arena.modelo.pessoa.Espectador;
/*
 * ArenaTicketMain - Venda de Bilhetes Eletronicos para Espetaculos (Arena Entretenimento S.A.)
 * BilheteInteiro.java
 * ©2006
 */

/**
 * @author  inf312
 */
public class BilheteInteiro extends Bilhete {

	public BilheteInteiro() {
		super.setTipo(Bilhete.TIPO_INTEIRO);
	}

	/**
	 * 
	 * @param numero
	 * @param estado
	 * @param espectador
	 * @param evento
	 * @param compra
	 * @param assento
	 */
	public BilheteInteiro(long numero, int estado, Espectador espectador,
			Evento evento, Compra compra, Assento assento, Estorno estorno) {
		super(numero, estado, espectador, evento, compra, assento, estorno);
		super.setTipo(Bilhete.TIPO_INTEIRO);
	}

	/**
	 *   Valor total do evento. Para assento sendo do tipo AssentoCategorizado,
	 * aplica percentual de acrescimo conforme categoria do assento.
	 * 
	 * @return double
	 */
	public double getValor() {
		double valorCalculado = 0.0D;
		double valor = this.getEvento().getValor();
		//
		if (super.getAssento() instanceof AssentoCategorizado) {
			AssentoCategorizado assento;
			assento = (AssentoCategorizado) super.getAssento();

			double percentualAcres = assento.getPercentualAcrescimo();
			//
			System.out.println("assento com % de " + percentualAcres);

			valorCalculado = valor + (valor * percentualAcres);
		}
		else {
			valorCalculado = valor;
		}
		return valorCalculado;
	}
}